SUPPORT / SAMPLES & SAS NOTES
 

Support

Problem Note 38922: PROC SORT using a multi-threaded host sort may hang or produce incorrect ordering

DetailsAboutRate It

In SAS® 9.1.3 SP4 running on Solaris SPARC servers, a PROC SORT step using the multi-threaded SAS sort may hang or produce incorrect ordering if a non-native collating sequence is specified, and if the starting position of a BY variable within the input data set's program data vector (PDV) is greater than or equal to 4096.

A non-native collating sequence is one specified using either a procedure collating sequence option (EBCDIC, DANISH, SWEDISH, etc.), or using either the SAS system option or procedure option SORTSEQ=. A collating sequence is non-native if it does not match the collating sequence associated with the session encoding.

You can determine whether the starting position of the BY variable within the program data vector is greater than or equal to 4096 by running the following program. Note that you must provide a data set name on the PROC CONTENTS statement:

   proc contents 
     data=<data set name>
     out=cont(keep=varnum name type npos length) 
     noprint;
   run;

   proc sort data=cont;
    by npos;
   run;

   proc print data=cont;
    var varnum name type npos length;
    where npos >= 4096;
   run;

If all of these conditions are met, then the problem may occur.

This behavior occurs only on Solaris SPARC servers.

Operating System and Release Information

Product FamilyProductSystemSAS Release
ReportedFixed*
SAS SystemBase SAS64-bit Enabled Solaris9.1 TS1M3 SP49.2 TS2M3
* For software releases that are not yet generally available, the Fixed Release is the software release in which the problem is planned to be fixed.